package com.justech.mes.utils;

import java.math.BigDecimal;
import java.math.RoundingMode;

/**
 * 针对于基本数据类型的一些数据处理
 *
 * @author feifei.li
 */
public class NumberFormatUtil {

    /**
     * 四舍五入保留两位小数
     *
     * @param d
     * @return
     */
    public static double formatDouble2(double d) {
        BigDecimal bg = new BigDecimal(d).setScale(2, RoundingMode.UP);
        return bg.doubleValue();
    }

    /**
     * float类型四舍五入保留两位小数
     *
     * @param f
     * @return
     */
    public static Float formatFloat2(Float f) {
        return (float) (Math.round(f * 100)) / 100;
    }

    /**
     * 将任意类型四舍五入保留两位小数
     *
     * @param number
     * @return
     */
    public static double round(Object number) {
        int digit = 2;
        return round(number, digit);
    }

    public static double round(Object number, int digit) {
        if (number == null) {
            throw new RuntimeException("为NULL的元素不可以进行四舍五入操作");
        }
        double d = 0.0;
        try {
            d = Float.valueOf(String.valueOf(number));
            BigDecimal bigDecimal = new BigDecimal(d);
            return bigDecimal.setScale(digit, RoundingMode.HALF_UP).doubleValue();
        } catch (NumberFormatException e) {
            return 0.0;
        }
    }

    public static Double convertToDouble(Long l) {
        if (ObjectUtil.isNull(l)) {
            return 0D;
        }
        return l.doubleValue();
    }

    public static void main(String[] args) {
        System.out.println(NumberFormatUtil.round("12", 0));
    }
}
